#ifndef RESOURCESET_H
#define RESOURCESET_H

#include "CellType.h"

namespace catan
{

class ResourceSet{
public:
	ResourceSet();		// default constructor
	ResourceSet(int theWood, int theSheep, int theWheat, int theBrick, int theOre);
	ResourceSet(CellType cellType);
	int getWood() const;		// accessors
	int getSheep() const;
	int getWheat() const;
	int getBrick() const;
	int getOre() const;
	ResourceSet getResources();
	// a function to check if the resources ar more or equal to the resources of the compared object
	bool containsAtLeast(ResourceSet resourceSet);
	// operator overloading
	friend const ResourceSet operator +(const ResourceSet& leftResourceSet, const ResourceSet& rightResourceSet);
	friend const ResourceSet operator -(const ResourceSet& leftResourceSet, const ResourceSet& rightResourceSet);
	friend const ResourceSet operator *(const ResourceSet& leftResourceSet, const int& rightInteger);
	friend const bool operator ==(const ResourceSet& leftResourceSet, const ResourceSet& rightResourceSet);


	void printResourceSet();	//to print player's resources
private:
	int wood;		// the number of wood resource cards
	int sheep;
	int wheat;
	int brick;
	int ore;
};
static ResourceSet resourceEmpty(0, 0, 0, 0, 0), resourceWood(1, 0, 0, 0, 0), resourceSheep(0, 1, 0, 0, 0), resourceWheat(0, 0, 1, 0, 0), resourceBrick(0, 0, 0, 1, 0), resourceOre(0, 0, 0, 0, 1), roadCost(1,0,0,1,0), settlementCost(1,1,1,1,0), cityCost(0,0,2,0,3), developmentCost(0,1,1,0,1);

}

#endif
